package 力扣日常刷题.木22二月.第16天222;

import 力扣日常刷题.TreeNode;

import java.util.TreeMap;

/**
 * @author 帅小伙
 * @date 2022/2/22
 * @description
 * 将右子树插入到  左子树的最右节点
 * 左右节点互换
 * 左节点置空
 */
public class Demo136二叉树展开为链表 {

    public void flatten(TreeNode root) {
        while (root != null) {
            //左子树为 null，直接考虑下一个节点
            if (root.left == null) {
                root = root.right;
            } else {
                // 找左子树最右边的节点
                TreeNode pre = root.left;
                while (pre.right != null) {
                    pre = pre.right;
                }
                //将原来的右子树接到左子树的最右边节点
                pre.right = root.right;
                // 将左子树插入到右子树的地方
                root.right = root.left;
                root.left = null;
                // 考虑下一个节点
                root = root.right;
            }
        }

    }



}
